Blog

Some ColdFusion Development Best Practices

Luis Majano October 05, 2009

Spread the word

Luis Majano

October 05, 2009

Spread the word


Share your thoughts

We always are trying to help the ColdFusion community as much as we can.  We had a CFC best practices document in our ColdBox documentation site in order to steer developers in the right direction when building components.  I have updated the document to now include more topics than just CFCs.  So if you are interested in collaborating to this document or think some points are useless, please comment and we can make this document better.

So here are our ColdFusion Development Best Practices document: http://ortus.svnrepository.com/coldbox/trac.cgi/wiki/cbDevelopmentBestPractices

Add Your Comment

(6)

Oct 06, 2009 03:20:57 UTC

by dickbob

Some interesting thoughts although you'll never get *everyone* to agree with *all* of them :-)

It might be nice to include some justification to the reccomendations. For example I understand but don't like...

<cfif len(firstName)></cfif>

...as len() doesn't return a boolean.

Discuss...

Oct 06, 2009 06:41:46 UTC

by Peter Boughton

Heh, I haven't even got past the first screen, and I already disagree with half of it!

The only one I'll explicitly state here is that regex is significantly more common (and less typing) than regexp.

Oct 06, 2009 07:29:10 UTC

by Tony Garcia

I use code like

<cfif len(firstName)></cfif>

all the time. It's just shorter than writing

<cfif len(firstName) gt 0></cfif>

And the intent of the code is very clear to me. I'm not hung up on that len() doesn't return a boolean (even though it acts like it does), since CF is loosely typed anyway.

I think a lof of these types of things just come down to personal preferences. The important thing is that you should have standard coding practices (whatever they may be) and stick to them.

Oct 06, 2009 09:21:08 UTC

by dickbob

@Tony - Be careful you don't end up on Sean's DNH list :-)

From his ColdFusion MX Coding Guidelines - Good Practice doc http://livedocs.adobe.com/wtg/public/coding_standards/goodpractice.html he says ...don't rely on implicit conversions from numeric types to boolean.

But you're right, it's a personal style thing and any standard is better than none.

Oct 06, 2009 11:23:43 UTC

by Tony Garcia

@dickbob

Yikes! I'll try to be careful. Thanks for the heads up! ;-)

Mar 25, 2019 02:23:25 UTC

by Enterprise Software Solutions

Your post was very nicely written, Thank you.

Recent Entries

Your Development Team Is at Capacity. Here’s How to Keep Critical Work Moving!

Your Development Team Is at Capacity. Here’s How to Keep Critical Work Moving!

The problem is not that your team lacks priorities.It is that maintenance, delivery, and long-term improvement are competing for the same people.

For companies running business-critical CFML, ColdFusion, or BoxLang applications, that pressure can be especially difficult to solve. Experienced developers are not always easy to hire quickly, application knowledge may be concentrated in one or two people, and a generalist may need significant context before taking ownership of the work. A permanent hire can also require a significant investment in recruiting, compensation, onboarding, and long-term capacity even when the immediate need is a specific project, urgent maintenance, or a period of transition.

Maria Jose Herrera
Maria Jose Herrera
September 18, 2026
Copy of BoxLang AI 3.4 Blog Series Part 5 : Reasoning Without the Guesswork

Copy of BoxLang AI 3.4 Blog Series Part 5 : Reasoning Without the Guesswork

Reasoning-capable models have been usable in BoxLang AI for a while. params passes straight through to the provider body, so params: { thinking: { type: "enabled", budget_tokens: 10000 } } for Claude, or params: { reasoning_effort: "high" } for OpenAI, already reached the API. What never worked was reading the reasoning back. It was parsed out on arrival and silently dropped. In 3.4.0, that's fixed, and it's fixed the same way for every provider.

Luis Majano
Luis Majano
September 15, 2026